<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.3" />
<title>Gerrit Code Review - JSON Data</title>
<style type="text/css">
/* Sans-serif font. */
h1, h2, h3, h4, h5, h6,
div.title, caption.title,
thead, p.table.header,
div#toctitle,
span#author, span#revnumber, span#revdate, span#revremark,
div#footer {
  font-family: Arial,Helvetica,sans-serif;
}

/* Serif font. */
div.sectionbody {
  font-family: Georgia,"Times New Roman",Times,serif;
}

/* Monospace font. */
tt {
  font-size: inherit;
}

body {
  margin: 1em 5% 1em 5%;
}

a {
  color: blue;
  text-decoration: underline;
}
a:visited {
  color: fuchsia;
}

em {
  font-style: italic;
  color: navy;
}

strong {
  font-weight: bold;
  color: #083194;
}

tt {
  font-size: inherit;
  color: navy;
}

h1, h2, h3, h4, h5, h6 {
  color: #527bbd;
  margin-top: 1.2em;
  margin-bottom: 0.5em;
  line-height: 1.3;
}

h1, h2, h3 {
  border-bottom: 2px solid silver;
}
h2 {
  padding-top: 0.5em;
}
h3 {
  float: left;
}
h3 + * {
  clear: left;
}

div.sectionbody {
  margin-left: 0;
}

hr {
  border: 1px solid silver;
}

p {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

ul, ol, li > p {
  margin-top: 0;
}
ul > li     { color: #aaa; }
ul > li > * { color: black; }

pre {
  padding: 0;
  margin: 0;
}

span#author {
  color: #527bbd;
  font-weight: bold;
  font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
}

div#footer {
  font-size: small;
  border-top: 2px solid silver;
  padding-top: 0.5em;
  margin-top: 4.0em;
}
div#footer-text {
  float: left;
  padding-bottom: 0.5em;
}
div#footer-badges {
  float: right;
  padding-bottom: 0.5em;
}

div#preamble {
  margin-top: 1.5em;
  margin-bottom: 1.5em;
}
div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
  margin-top: 1.0em;
  margin-bottom: 1.5em;
}
div.admonitionblock {
  margin-top: 2.0em;
  margin-bottom: 2.0em;
  margin-right: 10%;
  color: #606060;
}

div.content { /* Block element content. */
  padding: 0;
}

/* Block element titles. */
div.title, caption.title {
  color: #527bbd;
  font-weight: bold;
  text-align: left;
  margin-top: 1.0em;
  margin-bottom: 0.5em;
}
div.title + * {
  margin-top: 0;
}

td div.title:first-child {
  margin-top: 0.0em;
}
div.content div.title:first-child {
  margin-top: 0.0em;
}
div.content + div.title {
  margin-top: 0.0em;
}

div.sidebarblock > div.content {
  background: #ffffee;
  border: 1px solid #dddddd;
  border-left: 4px solid #f0f0f0;
  padding: 0.5em;
}

div.listingblock > div.content {
  border: 1px solid #dddddd;
  border-left: 5px solid #f0f0f0;
  background: #f8f8f8;
  padding: 0.5em;
}

div.quoteblock, div.verseblock {
  padding-left: 1.0em;
  margin-left: 1.0em;
  margin-right: 10%;
  border-left: 5px solid #f0f0f0;
  color: #777777;
}

div.quoteblock > div.attribution {
  padding-top: 0.5em;
  text-align: right;
}

div.verseblock > pre.content {
  font-family: inherit;
  font-size: inherit;
}
div.verseblock > div.attribution {
  padding-top: 0.75em;
  text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
  text-align: left;
}

div.admonitionblock .icon {
  vertical-align: top;
  font-size: 1.1em;
  font-weight: bold;
  text-decoration: underline;
  color: #527bbd;
  padding-right: 0.5em;
}
div.admonitionblock td.content {
  padding-left: 0.5em;
  border-left: 3px solid #dddddd;
}

div.exampleblock > div.content {
  border-left: 3px solid #dddddd;
  padding-left: 0.5em;
}

div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; }
a.image:visited { color: white; }

dl {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
dt {
  margin-top: 0.5em;
  margin-bottom: 0;
  font-style: normal;
  color: navy;
}
dd > *:first-child {
  margin-top: 0.1em;
}

ul, ol {
    list-style-position: outside;
}
ol.arabic {
  list-style-type: decimal;
}
ol.loweralpha {
  list-style-type: lower-alpha;
}
ol.upperalpha {
  list-style-type: upper-alpha;
}
ol.lowerroman {
  list-style-type: lower-roman;
}
ol.upperroman {
  list-style-type: upper-roman;
}

div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
  margin-top: 0.1em;
  margin-bottom: 0.1em;
}

div.tableblock > table {
  border: 3px solid #527bbd;
}
thead, p.table.header {
  font-weight: bold;
  color: #527bbd;
}
tfoot {
  font-weight: bold;
}
td > div.verse {
  white-space: pre;
}
p.table {
  margin-top: 0;
}
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
  border-style: none;
}
div.tableblock > table[frame="hsides"] {
  border-left-style: none;
  border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
  border-top-style: none;
  border-bottom-style: none;
}


div.hdlist {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
div.hdlist tr {
  padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
  font-weight: bold;
}
td.hdlist1 {
  vertical-align: top;
  font-style: normal;
  padding-right: 0.8em;
  color: navy;
}
td.hdlist2 {
  vertical-align: top;
}
div.hdlist.compact tr {
  margin: 0;
  padding-bottom: 0;
}

.comment {
  background: yellow;
}

.footnote, .footnoteref {
  font-size: 0.8em;
}

span.footnote, span.footnoteref {
  vertical-align: super;
}

#footnotes {
  margin: 20px 0 20px 0;
  padding: 7px 0 0 0;
}

#footnotes div.footnote {
  margin: 0 0 5px 0;
}

#footnotes hr {
  border: none;
  border-top: 1px solid silver;
  height: 1px;
  text-align: left;
  margin-left: 0;
  width: 20%;
  min-width: 100px;
}

div.colist td {
  padding-right: 0.5em;
  padding-bottom: 0.3em;
  vertical-align: top;
}
div.colist td img {
  margin-top: 0.3em;
}

@media print {
  div#footer-badges { display: none; }
}

div#toc {
  margin-bottom: 2.5em;
}

div#toctitle {
  color: #527bbd;
  font-size: 1.1em;
  font-weight: bold;
  margin-top: 1.0em;
  margin-bottom: 0.1em;
}

div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
  margin-top: 0;
  margin-bottom: 0;
}
div.toclevel2 {
  margin-left: 2em;
  font-size: 0.9em;
}
div.toclevel3 {
  margin-left: 4em;
  font-size: 0.9em;
}
div.toclevel4 {
  margin-left: 6em;
  font-size: 0.9em;
}

</style>
<script type="text/javascript">
/*<![CDATA[*/
window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}
var asciidoc = {  // Namespace.

/////////////////////////////////////////////////////////////////////
// Table Of Contents generator
/////////////////////////////////////////////////////////////////////

/* Author: Mihai Bazon, September 2002
 * http://students.infoiasi.ro/~mishoo
 *
 * Table Of Content generator
 * Version: 0.4
 *
 * Feel free to use this script under the terms of the GNU General Public
 * License, as long as you do not remove or alter this notice.
 */

 /* modified by Troy D. Hanson, September 2006. License: GPL */
 /* modified by Stuart Rackham, 2006, 2009. License: GPL */

// toclevels = 1..4.
toc: function (toclevels) {

  function getText(el) {
    var text = "";
    for (var i = el.firstChild; i != null; i = i.nextSibling) {
      if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
        text += i.data;
      else if (i.firstChild != null)
        text += getText(i);
    }
    return text;
  }

  function TocEntry(el, text, toclevel) {
    this.element = el;
    this.text = text;
    this.toclevel = toclevel;
  }

  function tocEntries(el, toclevels) {
    var result = new Array;
    var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
    // Function that scans the DOM tree for header elements (the DOM2
    // nodeIterator API would be a better technique but not supported by all
    // browsers).
    var iterate = function (el) {
      for (var i = el.firstChild; i != null; i = i.nextSibling) {
        if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
          var mo = re.exec(i.tagName);
          if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
            result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
          }
          iterate(i);
        }
      }
    }
    iterate(el);
    return result;
  }

  var toc = document.getElementById("toc");
  var entries = tocEntries(document.getElementById("content"), toclevels);
  for (var i = 0; i < entries.length; ++i) {
    var entry = entries[i];
    if (entry.element.id == "")
      entry.element.id = "_toc_" + i;
    var a = document.createElement("a");
    a.href = "#" + entry.element.id;
    a.appendChild(document.createTextNode(entry.text));
    var div = document.createElement("div");
    div.appendChild(a);
    div.className = "toclevel" + entry.toclevel;
    toc.appendChild(div);
  }
  if (entries.length == 0)
    toc.parentNode.removeChild(toc);
},


/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////

/* Based on footnote generation code from:
 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
 */

footnotes: function () {
  var cont = document.getElementById("content");
  var noteholder = document.getElementById("footnotes");
  var spans = cont.getElementsByTagName("span");
  var refs = {};
  var n = 0;
  for (i=0; i<spans.length; i++) {
    if (spans[i].className == "footnote") {
      n++;
      // Use [\s\S] in place of . so multi-line matches work.
      // Because JavaScript has no s (dotall) regex flag.
      note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
      noteholder.innerHTML +=
        "<div class='footnote' id='_footnote_" + n + "'>" +
        "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
        n + "</a>. " + note + "</div>";
      spans[i].innerHTML =
        "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
        "' title='View footnote' class='footnote'>" + n + "</a>]";
      var id =spans[i].getAttribute("id");
      if (id != null) refs["#"+id] = n;
    }
  }
  if (n == 0)
    noteholder.parentNode.removeChild(noteholder);
  else {
    // Process footnoterefs.
    for (i=0; i<spans.length; i++) {
      if (spans[i].className == "footnoteref") {
        var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
        href = href.match(/#.*/)[0];  // Because IE return full URL.
        n = refs[href];
        spans[i].innerHTML =
          "[<a href='#_footnote_" + n +
          "' title='View footnote' class='footnote'>" + n + "</a>]";
      }
    }
  }
}

}
/*]]>*/
</script>
</head>
<body class="article">
<div id="header">
<h1>Gerrit Code Review - JSON Data</h1>
<span id="revnumber">version 2.5.2</span>
<div id="toc">
  <div id="toctitle">Table of Contents</div>
  <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph"><p>Some commands produce JSON data streams intended for other
applications to consume.  The structures are documented below.
Note that any field may be missing in the JSON messages, so consumers
of this JSON stream should deal with that appropriately.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="change">change</h2>
<div class="sectionbody">
<div class="paragraph"><p>The Gerrit change being reviewed, or that was already reviewed.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
project
</dt>
<dd>
<p>
Project path in Gerrit.
</p>
</dd>
<dt class="hdlist1">
branch
</dt>
<dd>
<p>
Branch name within project.
</p>
</dd>
<dt class="hdlist1">
topic
</dt>
<dd>
<p>
Topic name specified by the uploader for this change series.
</p>
</dd>
<dt class="hdlist1">
id
</dt>
<dd>
<p>
Change identifier, as scraped out of the Change-Id field in
the commit message, or as assigned by the server if it was missing.
</p>
</dd>
<dt class="hdlist1">
number
</dt>
<dd>
<p>
Change number (deprecated).
</p>
</dd>
<dt class="hdlist1">
subject
</dt>
<dd>
<p>
Description of change.
</p>
</dd>
<dt class="hdlist1">
owner
</dt>
<dd>
<p>
Owner in <a href="#account">account attribute</a>.
</p>
</dd>
<dt class="hdlist1">
url
</dt>
<dd>
<p>
Canonical URL to reach this change.
</p>
</dd>
<dt class="hdlist1">
commitMessage
</dt>
<dd>
<p>
The full commit message for the change.
</p>
</dd>
<dt class="hdlist1">
lastUpdated
</dt>
<dd>
<p>
Time in seconds since the UNIX epoch when this change
was last updated.
</p>
</dd>
<dt class="hdlist1">
sortKey
</dt>
<dd>
<p>
Internal key used to sort changes, based on lastUpdated.
</p>
</dd>
<dt class="hdlist1">
open
</dt>
<dd>
<p>
Boolean indicating if the change is still open for review.
</p>
</dd>
<dt class="hdlist1">
status
</dt>
<dd>
<p>
Current state of this change.
</p>
<div class="dlist"><dl>
<dt class="hdlist1">
NEW
</dt>
<dd>
<p>
Change is still being reviewed.
</p>
</dd>
<dt class="hdlist1">
SUBMITTED
</dt>
<dd>
<p>
Change has been submitted and is in the merge queue.
  It may be waiting for one or more dependencies.
</p>
</dd>
<dt class="hdlist1">
MERGED
</dt>
<dd>
<p>
Change has been merged to its branch.
</p>
</dd>
<dt class="hdlist1">
ABANDONED
</dt>
<dd>
<p>
Change was abandoned by its owner or administrator.
</p>
</dd>
</dl></div>
</dd>
<dt class="hdlist1">
trackingIds
</dt>
<dd>
<p>
Issue tracking system links in
<a href="#trackingid">trackingid attribute</a>, scraped out of the commit
message based on the server&#8217;s
<a href="config-gerrit.html#trackingid">trackingid</a> sections.
</p>
</dd>
<dt class="hdlist1">
currentPatchSet
</dt>
<dd>
<p>
Current <a href="#patchSet">patchSet attribute</a>.
</p>
</dd>
<dt class="hdlist1">
patchSets
</dt>
<dd>
<p>
All <a href="#patchSet">patchSet attribute</a> for this change.
</p>
</dd>
<dt class="hdlist1">
submitRecords
</dt>
<dd>
<p>
The <a href="#submitRecord">submitRecord attribute</a> contains
information about whether this change has been or can be submitted.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="trackingid">trackingid</h2>
<div class="sectionbody">
<div class="paragraph"><p>A link to an issue tracking system.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
system
</dt>
<dd>
<p>
Name of the system.  This comes straight from the
gerrit.config file.
</p>
</dd>
<dt class="hdlist1">
id
</dt>
<dd>
<p>
Id number as scraped out of the commit message.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="account">account</h2>
<div class="sectionbody">
<div class="paragraph"><p>A user account.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
name
</dt>
<dd>
<p>
User&#8217;s full name, if configured.
</p>
</dd>
<dt class="hdlist1">
email
</dt>
<dd>
<p>
User&#8217;s preferred email address.
</p>
</dd>
<dt class="hdlist1">
username
</dt>
<dd>
<p>
User&#8217;s username, if configured.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="patchSet">patchSet</h2>
<div class="sectionbody">
<div class="paragraph"><p>Refers to a specific patchset within a <a href="#change">change</a>.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
number
</dt>
<dd>
<p>
The patchset number.
</p>
</dd>
<dt class="hdlist1">
revision
</dt>
<dd>
<p>
Git commit for this patchset.
</p>
</dd>
<dt class="hdlist1">
ref
</dt>
<dd>
<p>
Git reference pointing at the revision.  This reference is
available through the Gerrit Code Review server&#8217;s Git interface
for the containing change.
</p>
</dd>
<dt class="hdlist1">
uploader
</dt>
<dd>
<p>
Uploader of the patch set in <a href="#account">account attribute</a>.
</p>
</dd>
<dt class="hdlist1">
approvals
</dt>
<dd>
<p>
The <a href="#approval">approval attribute</a> granted.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="approval">approval</h2>
<div class="sectionbody">
<div class="paragraph"><p>Records the code review approval granted to a patch set.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
type
</dt>
<dd>
<p>
Internal name of the approval given.
</p>
</dd>
<dt class="hdlist1">
description
</dt>
<dd>
<p>
Human readable category of the approval.
</p>
</dd>
<dt class="hdlist1">
value
</dt>
<dd>
<p>
Value assigned by the approval, usually a numerical score.
</p>
</dd>
<dt class="hdlist1">
grantedOn
</dt>
<dd>
<p>
Time in seconds since the UNIX epoch when this approval
was added or last updated.
</p>
</dd>
<dt class="hdlist1">
by
</dt>
<dd>
<p>
Reviewer of the patch set in <a href="#account">account attribute</a>.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="refUpdate">refUpdate</h2>
<div class="sectionbody">
<div class="paragraph"><p>Information about a ref that was updated.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
oldRev
</dt>
<dd>
<p>
The old value of the ref, prior to the update.
</p>
</dd>
<dt class="hdlist1">
newRev
</dt>
<dd>
<p>
The new value the ref was updated to.
</p>
</dd>
<dt class="hdlist1">
project
</dt>
<dd>
<p>
Project path in Gerrit.
</p>
</dd>
<dt class="hdlist1">
refName
</dt>
<dd>
<p>
Ref name within project.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="queryLimit">queryLimit</h2>
<div class="sectionbody">
<div class="paragraph"><p>Information about the <a href="access-control.html#capability_queryLimit">queryLimit</a>
of a user.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
min
</dt>
<dd>
<p>
lower limit
</p>
</dd>
<dt class="hdlist1">
max
</dt>
<dd>
<p>
upper limit
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="submitRecord">submitRecord</h2>
<div class="sectionbody">
<div class="paragraph"><p>Information about the submit status of a change.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
status
</dt>
<dd>
<p>
Current submit status.
</p>
<div class="dlist"><dl>
<dt class="hdlist1">
OK
</dt>
<dd>
<p>
The change is ready for submission or already submitted.
</p>
</dd>
<dt class="hdlist1">
NOT_READY
</dt>
<dd>
<p>
The change is missing a required label.
</p>
</dd>
<dt class="hdlist1">
RULE_ERROR
</dt>
<dd>
<p>
An internal server error occurred preventing computation.
</p>
</dd>
</dl></div>
</dd>
<dt class="hdlist1">
labels
</dt>
<dd>
<p>
This describes the state of each code review
<a href="#label">label attribute</a>, unless the status is RULE_ERROR.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="label">label</h2>
<div class="sectionbody">
<div class="paragraph"><p>Information about a code review label for a change.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
label
</dt>
<dd>
<p>
The name of the label.
</p>
</dd>
<dt class="hdlist1">
status
</dt>
<dd>
<p>
The status of the label.
</p>
<div class="dlist"><dl>
<dt class="hdlist1">
OK
</dt>
<dd>
<p>
This label provides what is necessary for submission.
</p>
</dd>
<dt class="hdlist1">
REJECT
</dt>
<dd>
<p>
This label prevents the change from being submitted.
</p>
</dd>
<dt class="hdlist1">
NEED
</dt>
<dd>
<p>
The label is required for submission, but has not
  been satisfied.
</p>
</dd>
<dt class="hdlist1">
MAY
</dt>
<dd>
<p>
The label may be set, but it&#8217;s neither necessary for
  submission nor does it block submission if set.
</p>
</dd>
<dt class="hdlist1">
IMPOSSIBLE
</dt>
<dd>
<p>
The label is required for submission, but is impossible
  to complete.  The likely cause is access has not been granted
  correctly by the project owner or site administrator.
</p>
</dd>
</dl></div>
</dd>
<dt class="hdlist1">
by
</dt>
<dd>
<p>
The <a href="#account">account</a> that applied the label.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
<a href="cmd-stream-events.html">gerrit stream-events</a>
</p>
</li>
<li>
<p>
<a href="cmd-query.html">gerrit query</a>
</p>
</li>
</ul></div>
</div>
</div>
<hr style="
  height: 2px;
  color: silver;
  margin-top: 1.2em;
  margin-bottom: 0.5em;
">
<div class="paragraph"><p>Part of <a href="index.html">Gerrit Code Review</a></p></div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Version 2.5.2<br />
Last updated 2013-02-12 10:15:32 CET
</div>
</div>
</body>
</html>
